//package com.web.aspect;
//
//import org.aspectj.lang.ProceedingJoinPoint;
//import org.aspectj.lang.annotation.*;
//import org.springframework.stereotype.Component;
//
///**
// * 日志切面
// */
//@Aspect
//@Component
//public class LogAspect {
//
//    /**
//     * 定义切点
//     * 1.* 代表任意修饰符  *ServiceImpl 类名   类名.* 所有方法 *(..) 带表任意参数
//     */
//    @Pointcut("execution(* com.web.service.impl.*ServiceImpl.*(..))")
//    public void pointcut(){}
//
//    /**
//     * 前置通知
//     */
//    @Before("pointcut()")
//    public void beforeLog(){
//        System.out.println("这是前置通知！！！");
//    }
//
//    @After("pointcut()")
//    public void afterLog(){
//        System.out.println("这是后置通知！！");
//    }
//
//    @Around("pointcut()")
//    public Object aroundLog(ProceedingJoinPoint joinPoint) throws Throwable {
//        System.out.println("这是环绕通知的前置日志");
//        //执行原来方法
//        Object obj = joinPoint.proceed();
//        System.out.println("这是环绕通知的后置日志");
//        return obj;
//    }
//
//    @AfterReturning("pointcut()")
//    public void returnLog(){
//        System.out.println("这是方法返回的通知");
//    }
//
//    @AfterThrowing("pointcut()")
//    public void throwLog(){
//        System.out.println("这是异常通知");
//    }
//}
